#继续穿搭
# 定义不同天气类型对应的基础穿衣建议
weather_clothes_suggestion = {
    "晴天": "可以穿轻薄的衬衫、浅色的T恤搭配牛仔裤或短裙",
    "多云": "适宜穿长袖上衣和休闲裤，方便增减衣物",
    "阴天": "建议穿稍厚一点的外套，如薄夹克或风衣",
    "雨天": "要穿防水的外套和鞋子，带上雨伞或雨衣",
    "雪天": "需穿厚羽绒服、保暖裤和雪地靴"
}

# 定义不同温度区间对应的穿衣调整建议
temperature_adjustment = {
    range(-10, 0): "要注意保暖，可添加毛衣、围巾、帽子等保暖配件",
    range(0, 15): "可以适当减少厚重衣物，穿一件薄外套即可",
    range(15, 32): "适合穿短袖、短裤等清凉的衣物",
    range(32, 40): "天气炎热，尽量选择透气吸汗的衣物，注意防晒"
}

# 定义一些常见的颜色搭配建议
color_matching_suggestion = {
    "上衣浅色": ["深色裤子", "同色系裤子"],
    "上衣深色": ["浅色裤子", "卡其色裤子"],
    "上衣彩色": ["黑色裤子", "白色裤子"]
}


def get_weather():
    """获取天气情况"""
    while True:
        weather = input("请输入今天的天气（晴天、多云、阴天、雨天、雪天）：").strip().lower()
        if weather in weather_clothes_suggestion:
            return weather
        else:
            print("输入的天气类型不正确，请重新输入。")


def get_temperature():
    """获取温度情况"""
    while True:
        try:
            temperature = int(input("请输入今天的温度（摄氏度）："))
            if temperature < -10 or temperature > 40:
                print("温度数值不太合理，超出有权目前的控制范围了，你那里是火焰山还是寒酷洞吗哈哈哈~请重新输入-10到40℃之间的温度吧。")
            else:
                return temperature
        except ValueError:
            print("我在这里只认识阿拉伯数字哦（1213...等），请输入有效的数字。")


def get_preference():
    """获取个人穿衣偏好"""
    preference = input("你有没有特别的穿衣偏好（例如喜欢宽松、喜欢简约等，若无直接回车）：")
    return preference


def get_custom_clothes():
    """获取用户自定义服装"""
    custom_clothes = input("你有没有特别想穿的衣服（若无直接回车）：")
    return custom_clothes


def get_color_preference():
    """获取颜色偏好"""
    while True:
        top_color = input("你更倾向于上衣什么颜色（上衣浅色、上衣深色、或上衣彩色，若无直接回车）：").strip().lower()
        if not top_color or top_color in color_matching_suggestion:
            return top_color
        else:
            print("输入的颜色类型不正确，请重新输入。")


def give_clothes_suggestion():
    """给出穿衣建议"""
    weather = get_weather()
    temperature = get_temperature()
    preference = get_preference()
    custom_clothes = get_custom_clothes()
    top_color = get_color_preference()

    base_suggestion = weather_clothes_suggestion[weather]

    for temp_range, adjustment in temperature_adjustment.items():
        if temperature in temp_range:
            base_suggestion += "，" + adjustment
            break

    if custom_clothes:
        base_suggestion += f"，你可以穿上你想穿的 {custom_clothes}。"
    else:
        base_suggestion += "。"

    if top_color:
        bottom_color_suggestions = color_matching_suggestion[top_color]
        base_suggestion += f" 关于颜色搭配，上衣选择 {top_color} 时，裤子可以搭配 {', '.join(bottom_color_suggestions)}。"

    if preference:
        base_suggestion += "，结合你的偏好：" + preference

    print(f"那么忧忧小泉建议来了：{base_suggestion}")

if __name__ == "__main__":
    give_clothes_suggestion()
